#include"BlockQueue.hpp"

void* consumer(void* args)//消费者方法
{
    cp_blockqueue<int>* cp = (cp_blockqueue<int>*)args;
    int data = 0;//消费数据
    while(true)
    {
        cp->pop(&data);
        cout<<"我是消费者，我消费了一个数据：" << data <<endl;
        sleep(1);
    }
}
void* producter(void* args)//生产者方法
{
    cp_blockqueue<int>* cp = (cp_blockqueue<int>*)args;
    while(true)
    {
        int data = rand()%20 + 1; //生产数据    
        cout<<"我是生产者，我生产了一个数据：" << data <<endl;
        cp->push(data);
        sleep(4);
    }

}


int main()
{
    srand((long long)time(nullptr));
    cp_blockqueue<int>* cp = new cp_blockqueue<int>();

    pthread_t c,p;
    pthread_create(&c, nullptr, consumer, (void*)cp);//消费者
    pthread_create(&p, nullptr, producter, (void*)cp);//生产者

    pthread_join(c, nullptr);
    pthread_join(p, nullptr);
    return 0;
}